package com.fitness.front.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fitness.front.modal.coach.vo.CoachVO;
import com.fitness.front.modal.course.entity.CourseSchedule;
import com.fitness.front.modal.course.params.CourseReserveQueryParams;
import com.fitness.front.modal.course.params.CourseSchedulePageQueryParams;
import com.fitness.front.modal.course.vo.CourseReserveVO;
import com.fitness.front.modal.course.vo.CourseScheduleVO;
import com.fitness.front.modal.course.vo.CourseVO;
import com.fitness.front.modal.resource.vo.VenueVO;

import java.util.List;

public interface ICourseScheduleService extends IService<CourseSchedule> {
    List<CoachVO> queryAvailableCoach(String startTime, String endTime);

    List<VenueVO> queryAvailableVenue(String startTime, String endTime);

    CourseScheduleVO getCourseScheduleByCourseId(Long courseId);

    Page<CourseScheduleVO> getCourseSchedulePage(CourseSchedulePageQueryParams queryParams);

    boolean deleteCourseSchedule(Long id);

    List<CourseScheduleVO> getCourseSchedulesByCourseId(Long courseId);

    CourseScheduleVO getCourseScheduleById(Long id);

    List<CourseScheduleVO> getCourseSchedulesByMemberIdAndYearMonth(Long memberId, String yearMonth);

    List<String> getCourseScheduleStartDate(Long memberId, String yearMonth);

    List<CourseScheduleVO> getCourseScheduleDetail(String date);

    List<CourseVO> getCourseScheduleByCoachId(Long coachId);
}
